package com.eu.ebpm.engine.pvm;


/**
 *	流程服务类型，现有的流程节点主要有以下13种。
 * @author 王晓华
 * @since 2015-1-25 下午09:16:01
 * @version v1.0
 */
public enum EngineServiceType {
	
	START_EVENT("开始事件"),
	
	END_EVENT("结束事件"),
	
	USER_TASK("用户任务"),
	
	SERVICE_TASK("自动任务"),
	
	FORK_BEFORE("分支前"),
	
	FORK_AFTER("分支后"),
	
	FORK_TASK("分支任务"),
	
	LANE_BEFORE("进入泳道前"),
	
	LANE_AFTER("进入泳道后"),
	
	LANE_TASK("泳道任务"),
	
	LANE_FORKTASK("泳道分支任务"),
	
	SUB_START_EVENT("子流程开始节点"),
	
	SUB_END_EVENT("子流程结束节点");
	
	private String desc;

	private EngineServiceType(String desc) {
		this.desc = desc;
	}

	public String getDesc() {
		return desc;
	}
	
	public static EngineServiceType getType(String code) {

		code = code.replace("_", "").toUpperCase();
		
		EngineServiceType[] codes = EngineServiceType.values();
		
		for (EngineServiceType type : codes) {
			if(code.equals(type.toString().replace("_", ""))) {
				return type;
			}
		}
		
		return null;
	}
}
